// components/lyric/lyric.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    isLyricShow: {
      type: Boolean,
      value: false, //默认值
    },
    lyric: String,
  },
  observers: {
    lyric(lrc) {
      // console.log(lrc)
      this._parseLaylrc(lrc)
    }
  },
  /**
   * 组件的初始数据
   */
  data: {
    lrcList: [], //处理后的歌词
  },

  /**
   * 组件的方法列表
   */
  methods: {
    _parseLaylrc(sLric) {
      // 通过换行符进行分割
      let line = sLric.split('\n')
      let _lrcList = []

      // console.log(line)
      line.forEach((elem) => {
          // 这个正则是匹配歌词的时间

        let time = elem.match(/\[(\d{2,}):(\d{2})(?:\.(\d{2,3}))?]/g)
        if(time != null){
          let lrc = elem.split(time)[1]
          // 这个正则是分割时间 ["00:03.270", "00", "03", "270"]
          let timeReg = time[0].match(/(\d{2,}):(\d{2})(?:\.(\d{2,3}))?/)
          // 时间转换成秒 第三个值是毫秒，所以除以1000
          let time2Seconds = parseInt(timeReg[1]) * 60 + parseInt(timeReg[2]) +
          parseInt(timeReg[3]) / 1000
          _lrcList.push({
            lrc,
            time: time2Seconds,
          })
          this.setData({
            lrcList: _lrcList
          })
        } 
      
      })
    }
  }
})